home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / RTLWIN32.PAK / MIDLES.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  6KB  |  235 lines

  1. /*++
  2.  
  3. Copyright (c) 1991-1996 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     midles.h
  8.  
  9. Abstract:
  10.  
  11.     This module contains definitions needed for encoding/decoding
  12.     support (serializing/deserializing a.k.a. pickling).
  13.  
  14. --*/
  15.  
  16. #ifndef __MIDLES_H__
  17. #define __MIDLES_H__
  18. #pragma option -b
  19.  
  20. #pragma option -b.
  21. #include <rpcndr.h>
  22. #pragma option -b
  23.  
  24. //
  25. // Set the packing level for RPC structures for Dos and Windows.
  26. //
  27.  
  28. #if defined(__RPC_DOS__) || defined(__RPC_WIN16__)
  29. #pragma pack(2)
  30. #endif
  31.  
  32. #if defined (__BORLANDC__)
  33. #pragma option -b.
  34.   #include <pshpack8.h>
  35. #pragma option -b
  36. #endif
  37.  
  38. #ifdef __cplusplus
  39. extern "C" {
  40. #endif
  41.  
  42. /*
  43.  *  Pickling support
  44.  */
  45. typedef enum
  46. {
  47.     MES_ENCODE,
  48.     MES_DECODE,
  49. } MIDL_ES_CODE;
  50.  
  51. typedef enum
  52. {
  53.     MES_INCREMENTAL_HANDLE,
  54.     MES_FIXED_BUFFER_HANDLE,
  55.     MES_DYNAMIC_BUFFER_HANDLE
  56. } MIDL_ES_HANDLE_STYLE;
  57.  
  58.  
  59. typedef void (__RPC_USER *  MIDL_ES_ALLOC )
  60.                 ( IN OUT  void __RPC_FAR * state,
  61.                   OUT     char __RPC_FAR *  __RPC_FAR * pbuffer,
  62.                   IN OUT  unsigned int __RPC_FAR * psize );
  63.  
  64. typedef void (__RPC_USER *  MIDL_ES_WRITE)
  65.                 ( IN OUT  void __RPC_FAR * state,
  66.                   IN      char __RPC_FAR * buffer,
  67.                   IN      unsigned int  size );
  68.  
  69. typedef void (__RPC_USER *  MIDL_ES_READ)
  70.                 ( IN OUT  void __RPC_FAR * state,
  71.                   OUT     char __RPC_FAR *  __RPC_FAR * pbuffer,
  72.                   IN OUT     unsigned int __RPC_FAR * psize );
  73.  
  74. typedef struct _MIDL_ES_MESSAGE
  75. {
  76.     MIDL_STUB_MESSAGE                       StubMsg;
  77.     MIDL_ES_CODE                            Operation;
  78.     void __RPC_FAR *                        UserState;
  79.     unsigned long                           MesVersion:8;
  80.     unsigned long                           HandleStyle:8;
  81.     unsigned long                           HandleFlags:8;
  82.     unsigned long                           Reserve:8;
  83.     MIDL_ES_ALLOC                           Alloc;
  84.     MIDL_ES_WRITE                           Write;
  85.     MIDL_ES_READ                            Read;
  86.     unsigned char __RPC_FAR *               Buffer;
  87.     unsigned long                           BufferSize;
  88.     unsigned char __RPC_FAR * __RPC_FAR *   pDynBuffer;
  89.     unsigned long __RPC_FAR *               pEncodedSize;
  90.     RPC_SYNTAX_IDENTIFIER                   InterfaceId;
  91.     unsigned long                           ProcNumber;
  92.     unsigned long                           AlienDataRep;
  93.     unsigned long                           IncrDataSize;
  94.     unsigned long                           ByteCount;
  95. } MIDL_ES_MESSAGE, __RPC_FAR * PMIDL_ES_MESSAGE;
  96.  
  97. typedef  PMIDL_ES_MESSAGE  MIDL_ES_HANDLE;
  98.  
  99. RPC_STATUS  RPC_ENTRY
  100. MesEncodeIncrementalHandleCreate(
  101.     void      __RPC_FAR *  UserState,
  102.     MIDL_ES_ALLOC          AllocFn,
  103.     MIDL_ES_WRITE          WriteFn,
  104.     handle_t  __RPC_FAR *  pHandle );
  105.  
  106. RPC_STATUS  RPC_ENTRY
  107. MesDecodeIncrementalHandleCreate(
  108.     void      __RPC_FAR *  UserState,
  109.     MIDL_ES_READ           ReadFn,
  110.     handle_t  __RPC_FAR *  pHandle );
  111.  
  112.  
  113. RPC_STATUS  RPC_ENTRY
  114. MesIncrementalHandleReset(
  115.     handle_t             Handle,
  116.     void    __RPC_FAR *  UserState,
  117.     MIDL_ES_ALLOC        AllocFn,
  118.     MIDL_ES_WRITE        WriteFn,
  119.     MIDL_ES_READ         ReadFn,
  120.     MIDL_ES_CODE         Operation );
  121.  
  122.  
  123. RPC_STATUS  RPC_ENTRY
  124. MesEncodeFixedBufferHandleCreate(
  125.     char __RPC_FAR *            pBuffer,
  126.     unsigned long               BufferSize,
  127.     unsigned long __RPC_FAR *   pEncodedSize,
  128.     handle_t  __RPC_FAR *       pHandle );
  129.  
  130. RPC_STATUS  RPC_ENTRY
  131. MesEncodeDynBufferHandleCreate(
  132.     char __RPC_FAR * __RPC_FAR *    pBuffer,
  133.     unsigned long    __RPC_FAR *    pEncodedSize,
  134.     handle_t  __RPC_FAR *           pHandle );
  135.  
  136. RPC_STATUS  RPC_ENTRY
  137. MesDecodeBufferHandleCreate(
  138.     char __RPC_FAR *        pBuffer,
  139.     unsigned long           BufferSize,
  140.     handle_t  __RPC_FAR *   pHandle );
  141.  
  142.  
  143. RPC_STATUS  RPC_ENTRY
  144. MesBufferHandleReset(
  145.     handle_t                        Handle,
  146.     unsigned long                   HandleStyle,
  147.     MIDL_ES_CODE                    Operation,
  148.     char __RPC_FAR * __RPC_FAR *    pBuffer,
  149.     unsigned long                   BufferSize,
  150.     unsigned long __RPC_FAR *       pEncodedSize );
  151.  
  152.  
  153. RPC_STATUS  RPC_ENTRY
  154. MesHandleFree( handle_t  Handle );
  155.  
  156. RPC_STATUS  RPC_ENTRY
  157. MesInqProcEncodingId(
  158.     handle_t                    Handle,
  159.     PRPC_SYNTAX_IDENTIFIER      pInterfaceId,
  160.     unsigned long __RPC_FAR *   pProcNum );
  161.  
  162.  
  163. #if defined(_MIPS_) || defined(_ALPHA_) || defined(_PPC_)
  164. #define __RPC_UNALIGNED   __unaligned
  165. #else
  166. #define __RPC_UNALIGNED
  167. #endif
  168.  
  169. void  RPC_ENTRY    I_NdrMesMessageInit( PMIDL_STUB_MESSAGE );
  170.  
  171. size_t  RPC_ENTRY
  172. NdrMesSimpleTypeAlignSize ( handle_t );
  173.  
  174. void  RPC_ENTRY
  175. NdrMesSimpleTypeDecode(
  176.     handle_t            Handle,
  177.     void __RPC_FAR *    pObject,
  178.     short               Size );
  179.  
  180. void  RPC_ENTRY
  181. NdrMesSimpleTypeEncode(
  182.     handle_t            Handle,
  183.     PMIDL_STUB_DESC     pStubDesc,
  184.     void __RPC_FAR *    pObject,
  185.     short               Size );
  186.  
  187.  
  188. size_t  RPC_ENTRY
  189. NdrMesTypeAlignSize(
  190.     handle_t            Handle,
  191.     PMIDL_STUB_DESC     pStubDesc,
  192.     PFORMAT_STRING      pFormatString,
  193.     void __RPC_FAR *    pObject );
  194.  
  195. void  RPC_ENTRY
  196. NdrMesTypeEncode(
  197.     handle_t            Handle,
  198.     PMIDL_STUB_DESC     pStubDesc,
  199.     PFORMAT_STRING      pFormatString,
  200.     void __RPC_FAR *    pObject );
  201.  
  202. void  RPC_ENTRY
  203. NdrMesTypeDecode(
  204.     handle_t            Handle,
  205.     PMIDL_STUB_DESC     pStubDesc,
  206.     PFORMAT_STRING      pFormatString,
  207.     void __RPC_FAR *    pObject );
  208.  
  209. void  RPC_VAR_ENTRY
  210. NdrMesProcEncodeDecode(
  211.     handle_t            Handle,
  212.     PMIDL_STUB_DESC     pStubDesc,
  213.     PFORMAT_STRING      pFormatString,
  214.     ... );
  215.  
  216.  
  217. #ifdef __cplusplus
  218. }
  219. #endif
  220.  
  221. #if defined (__BORLANDC__)
  222. #pragma option -b.
  223.   #include <poppack.h>
  224. #pragma option -b
  225. #endif
  226.  
  227. // Reset the packing level for DOS and Windows.
  228.  
  229. #if defined(__RPC_DOS__) || defined(__RPC_WIN16__)
  230. #pragma pack()
  231. #endif
  232.  
  233. #pragma option -b.
  234. #endif /* __MIDLES_H__ */
  235.